#include<bits/stdc++.h>
using namespace std;
#define all(x) (x).begin(),(x).end()
#define rall(x) (x).rbegin(),(x).rend()
const int N=1e3+10;
#define INF 0x3f3f3f3f;
typedef long long int ll;
#define close(); std::ios::sync_with_stdio(false);cin.tie(0),cout.tie(0);
//----------------------------------------------------------------------------//
int f[N];
int a[N][N];//有0不用考虑边界
int main()
{
    int n;
    cin>>n;
    for(int i = 1; i <= n; i++)
        for(int j = 1; j <= i; j++)  cin>>a[i][j];
        
    for(int i = n; i >= 1; i--)//从下往上走
        for(int j = 1; j <= n; j++) f[j] = max(f[j], f[j + 1]) + a[i][j];//用原来的更新现在的
        
    cout<<f[1];
    return 0;
}

